/**
 * 从URL中获取指定参数的值
 * @param {string} url - 完整的URL字符串
 * @param {string} paramName - 要获取的参数名
 * @returns {string|null} 参数值，如果不存在则返回null
 */
export function getUrlParam(url, paramName) {
  // 创建一个URL对象（兼容不支持URL构造函数的浏览器）
  let urlObj
  try {
    urlObj = new URL(url)
  }
  catch (e) {
    // 对于不支持URL构造函数的浏览器，使用正则表达式解析
    const paramPattern = new RegExp(`[?&]${paramName}=([^&]*)`)
    const match = url.match(paramPattern)
    return match ? decodeURIComponent(match[1]) : null
  }

  // 使用URLSearchParams获取参数
  const params = new URLSearchParams(urlObj.search)
  const paramValue = params.get(paramName)

  // 如果参数值存在，解码后返回
  return paramValue ? decodeURIComponent(paramValue) : null
}
